package com.zhihuishu.micro.course.openapi.app.teacher;

import com.zhihuishu.micro.course.openapi.app.dto.ChapterWebDto;
import com.zhihuishu.remote.RemoteResult;

/**
 * 章接口
 * 
 * @author 嵇鹏
 * @descption:
 * 
 * 
 */
public interface ChapterOpenService {

    /**
     * @Description:新增章
     * @date:@2016年12月7日下午12:36:12
     * @author:嵇鹏
     * @Param:
     * @retuen:RemoteResult<Integer>
     */
    public RemoteResult<Integer> addChapter(ChapterWebDto chapterWebDto,Long userId);

    /**
     * @Description:根据章id查询
     * @date:@2016年12月7日上午11:33:00
     * @author:嵇鹏
     * @Param:
     * @retuen:RemoteResult<ChapterWebDto>
     */
    public RemoteResult<ChapterWebDto> queryChapterById(Integer chapterId);

    /**
     * @Description:删除章
     * @date:@2016年12月7日下午1:35:56
     * @author:嵇鹏
     * @Param:
     * @retuen:RemoteResult<ChapterWebDto>
     */
    public RemoteResult<Void> deleteChapter(Integer chapterId, Long courseId, Long userId);
    /**
     * @Description:更新章
     *  @date:@2016年12月7日下午2:04:39
     *  @author:嵇鹏
     *  @Param:
     *  @retuen:RemoteResult<Void>
     */
    public RemoteResult<Void> updateChapter(ChapterWebDto chapterWebDto,Long userId);
    /**
     * @Description:章排序
     *  @date:@2016年12月8日下午2:43:48
     *  @author:嵇鹏
     *  @Param:
     *  @retuen:RemoteResult<Void>
     */
    public RemoteResult<Void> updateChapterSort(ChapterWebDto chapterWebDto,Long courseId,Long userId);
    /**
     * @Description:计算章与课程的完整度状态
     *  @date:@2016年12月19日下午12:56:40
     *  @author:嵇鹏
     *  @Param:
     *  @retuen:RemoteResult<Void>
     */
    public RemoteResult<Void> cacluCourseStepAndChapterPassStatus(int chapterId,long courseId,long userId);

}
